<?php
App::import('Vendor', 'php-excel-reader/excel_reader2');
class HometownsController extends AppController{
		var $name = 'Hometowns';
	var $uses = array('Hometown');
	var $components = array('RequestHandler', 'Filter', 'FileUpload');
	var $helpers = array('Js' => array('Jquery'), 'xls');
	var $paginate = array('limit' => 10,'order' => array('Hometown.id' => 'asc'));
 	function index(){
     	$filter = $this->Filter->process($this);
    	$this->set('hometowns', $this->paginate('Hometown', $filter));
    	$this->set('isFilter', $filter);    	
    }
	function exportXls(){
		$filter = $this->Filter->process($this);
		$this->set('hometowns', $this->Hometown->find('all', array('conditions'=>$filter)));
	}
function importXls(){
		//process upload file
        $this->FileUpload->uploadDir = 'files';
		$this->FileUpload->fileModel = null;
        $this->FileUpload->allowedTypes=array('xml','xls');
        $this->FileUpload->maxFileSize='2M';

        if($this->FileUpload->uploadFile('listmems')) {
            //process import file into database
            $data = new Spreadsheet_Excel_Reader("files\\".$this->FileUpload->finalFile,true,'UTF-8');
            $this->set('data', $data);
            $tempdata = array('Hometown'=>array('id'=>'','hometown'=>''));
            //validate
            $error_count = 0;
            for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
                if(empty($data->sheets[0]['cells'][$i][1])) {
                	$error_count = $error_count + 1;               	
                	$this->FileUpload->removeFile($this->FileUpload->finalFile);
                    $this->flash(__('Dữ liệu rỗng ở hàng thứ '.$i.'. Vui lòng kiểm tra lại file excel.', true), array('action' => 'index'));
                }                
                 if(empty($data->sheets[0]['cells'][$i][2])) {
                	$error_count = $error_count + 1;               	
                	$this->FileUpload->removeFile($this->FileUpload->finalFile);
                    $this->flash(__('Dữ liệu rỗng ở hàng thứ '.$i.'. Vui lòng kiểm tra lại file excel.', true), array('action' => 'index'));
                }
             
                  //Checking id if it existed
                  if($this->Hometown->find('count',array('conditions' => array('Hometown.id' => $data->sheets[0]['cells'][$i][1])))) {
                    	$error_count = $error_count + 1;
                        $this->FileUpload->removeFile($this->FileUpload->finalFile);
                    	$this->flash(__('Tỉnh thành ở hàng thứ '.$i.' đã có trong CSDL gây trùng dữ liệu. Vui lòng kiểm tra lại file excel.', true), array('action' => 'index'));
                  }
            	                
            }//kết thúc for kiểm tra file excel 
            
            $errorInsert_count = 0; //đếm lỗi insert
            if($error_count==0)    //file chuẩn, bắt đầu thêm           
            { 
                for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
            
                    $tempdata['Hometown']['id'] = $data->sheets[0]['cells'][$i][1];
                    $tempdata['Hometown']['hometown'] = $data->sheets[0]['cells'][$i][2];
                   	$this->Hometown->set($tempdata);
            
	               if ($this->Hometown->save()) {
								//$this->flash(__('Thao tác thành công 1', true), array('action' => 'index'));
					}
					else {
						$errorInsert_count = $errorInsert_count +1;
						$this->FileUpload->removeFile($this->FileUpload->finalFile);
						$this->flash(__('Thêm mới bị lỗi từ tỉnh thành có mã '.$data->sheets[0]['cells'][$i][1].", do lỗi dữ liệu nhập.", true), array('action'=>'index'));
					}
					
           		 }//kết thúc for thêm
            } //kết thúc if($error_count==0) 
            else//xuất số lỗi 
            {
            	$this->flash(__('Số lỗi = ' .$error_count.'.' , true), array('action' => 'index'));
            }
            
            if($errorInsert_count == 0 && $error_count == 0){
            $this->FileUpload->removeFile($this->FileUpload->finalFile);
            $this->flash(__('Thêm mới từ file thành công.', true), array('action' => 'index'));
            }
            
        }// kết thúc if($this->FileUpload->uploadFile('listmems')) 
        else {
            $this->flash(__('Lỗi upload file.', true), array('action' => 'index'));
        }
	}// đóng function importXls
    function add(){
    	$this->Hometown->create();
      	if(!empty($this->data)){
    		if($this->Hometown->save($this->data)){
    			$this->flash(__('Thêm thành công.',true),array('controller'=>'Hometowns','action' => 'index'));    	
    		}
    		else{
    			$this->flash(__('Thao tác thất bại. Vui lòng kiểm tra lại!',true), array('action' => 'index'));
    		}
    	}
    }
    function edit($id=null){
    	$this->Hometown->id = $id;
       	if (empty($this->data)) {
    		$this->data = $this->Hometown->read();    		
    	} else {
    		if ($this->Hometown->save($this->data)) {
    			$this->flash(__('Sửa thành công.', true), array('action' => 'index'));
    		}
    		else
    		$this->flash(__('Thao tác thất bại. Vui lòng kiểm tra lại.', true), array('action' => 'index'));
    	}
    }
    function delete($id){
    	$this->Hometown->delete($id);
    	$this->Hometown->query("update union_member_details set hometown_id = null where hometown_id = '$id';");
    	$this->redirect(array('action'=>'index'));
    }
    function delMulti(){
    	if($this->data['SelectedHs']){
    		$listSelect = array();
    		foreach ($this->data['SelectedHs'] as $key => $value){
    			if($value != '0'){
    				array_push($listSelect, $value);
    				
    			}    			
    		}
    		$this->set('hometowns', $this->Hometown->find('all', array('conditions'=>array('Hometown.id'=>$listSelect))));
    		$this->Session->write('listDel', $listSelect);
    	}
    	else{
    		if($this->Session->check('listDel')){
    			foreach ($this->Session->read('listDel') as $value){    				
    				$this->Hometown->delete($value);
    			}
    			$this->Session->delete('listDel');
				$this->flash(__('Xóa thành công.', true), array('action' => 'index'));
    		}
    		else{
    			$this->flash(__('Thao tác thất bại. Vui lòng kiểm tra lại.', true), array('action' => 'index'));
    		}
    	}
    	
    }
}
?>